Skip to content

feat(providers): make profiles authoritative - #2962

Open
johntmyers wants to merge 6 commits into
mainfrom
feat/1988-providers-v2-only/johntmyers
Open

feat(providers): make profiles authoritative#2962
johntmyers wants to merge 6 commits into
mainfrom
feat/1988-providers-v2-only/johntmyers

Conversation

@johntmyers

Copy link
Copy Markdown
Collaborator

Summary

Make provider profiles authoritative for new provider creation and discovery, removing the Providers v2 compatibility switch and legacy public provider workflows.

Related Issue

Closes #1988

Changes

  • removes providers_v2_enabled and always composes attached profile policy for sandbox-scoped policies
  • requires built-in or imported profiles for new providers while preserving existing legacy records
  • adds built-in openai and anthropic profiles and retires public generic, gitlab, opencode, and outlook selection/discovery
  • supports credentialless policy-only and runtime-resolvable profiles without dummy credentials
  • moves CLI and TUI creation/discovery to profile metadata
  • updates examples, e2e fixtures, docs, architecture notes, and agent skills
  • preserves custom imported profiles, including deployment-specific GitLab profiles
  • fixes S3 signing-region inference exposed by unconditional profile composition

Testing

  • mise run ci
  • mise run test
  • mise run e2e:rust
  • mise run e2e:python (89 passed, 84 skipped)
  • mise run docs:build:strict
  • cargo test --manifest-path e2e/rust/Cargo.toml --all-features --no-run
  • cargo test --manifest-path examples/governance-interceptor/Cargo.toml

Checklist

  • Tests added or updated
  • Documentation updated
  • Generated bindings updated
  • Agent workflow documentation reviewed
  • DCO sign-off included

Closes #1988

Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown

Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

The provider-profile migration is project-valid and the docs cover the direct UX changes, but two TUI correctness regressions need fixes before pipeline handoff.

Action required: @johntmyers, please address the two inline Warnings and add the focused TUI state/key-handling coverage described there.

Blocking findings:

  • GATOR-86a7222e-02: valid runtime-resolvable or optional-credential profiles cannot be created without a static secret in the TUI
  • GATOR-86a7222e-03: an empty or unavailable profile catalog lets Enter panic the provider-create modal

Carried findings:

  • None

Non-blocking suggestions:

  • None
Gator metadata
  • Validation: project-valid because it implements accepted, review-ready issue #1988 and was submitted by a repository maintainer
  • Docs: Fern provider docs and navigation are updated for the user-facing provider workflow
  • Checks: current-head Branch Checks and Helm Lint are pending; DCO is green
  • E2E: test:e2e is required for provider credential flow, policy composition, and sandbox lifecycle, but dispatch waits until review blockers are resolved
  • Head SHA: 86a7222e1614b7817a56bfa62da1c1bbfec8e3e8
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: e241be15c4197e8cb3a7b8587815577cebcf6a08
  • Gator payload: 7
  • Review mode: initial
  • Previous reviewed SHA: none
  • Review budget exhausted: no
  • Maintainer decision required: no
  • Next state: gator:in-review

Comment thread crates/openshell-tui/src/app.rs
Comment thread crates/openshell-tui/src/app.rs
@johntmyers johntmyers added the gator:in-review Gator is reviewing or awaiting PR review feedback label Aug 26, 2026

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

The maintainer-requested fresh initial review covered the complete 58-file, four-commit stack. It independently confirms the two existing TUI obligations and finds one additional gateway regression in authoritative provider credential-key validation.

Action required: @johntmyers, please address the two carried TUI Warnings and the new inline gateway Warning, with the focused regression coverage requested in each.

Blocking findings:

  • GATOR-86a7222e-04: broker-only credentials identified by profile name are rejected as undeclared

Carried findings:

  • GATOR-86a7222e-02: TUI creation misclassifies valid empty-credential and broker-only profiles
  • GATOR-86a7222e-03: an empty or unavailable profile catalog lets Enter panic the provider-create modal

Non-blocking suggestions:

  • None
Gator metadata
  • Validation: project-valid because it implements accepted, review-ready issue #1988 and was submitted by a repository maintainer
  • Docs: Fern provider docs, navigation, and the legacy-route redirect are updated for the user-facing provider workflow
  • Checks: current-head Branch Checks, Helm Lint, DCO, and published required gate statuses are green
  • E2E: test:e2e is required for provider credential flow, policy composition, and sandbox lifecycle; dispatch waits until review blockers are resolved
  • Head SHA: 86a7222e1614b7817a56bfa62da1c1bbfec8e3e8
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: e241be15c4197e8cb3a7b8587815577cebcf6a08
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized full-PR replacement)
  • Previous reviewed SHA: none for this scope-authorized rerun
  • Review budget exhausted: no
  • Maintainer decision required: no
  • Next state: gator:in-review

Comment thread crates/openshell-server/src/grpc/provider.rs Outdated
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

Thanks @johntmyers. I rechecked your e438dcf8 fixes for the three earlier findings and independently reviewed the complete 58-file, five-commit merge-base-to-head patch. Those earlier obligations are resolved, but the full review found one profile-resolution regression that can silently substitute a built-in profile for an exact imported profile ID.

Action required: @johntmyers, please make profile resolution exact-ID-first across creation and runtime lookup paths and add the imported alias-shaped profile regression test described inline.

Blocking findings:

  • GATOR-e438dcf8-01: legacy alias normalization can override an exact imported provider profile ID

Carried findings:

  • None; GATOR-86a7222e-02, GATOR-86a7222e-03, and GATOR-86a7222e-04 are resolved by the current patch

Non-blocking suggestions:

  • None
Gator metadata
  • Validation: project-valid because it implements accepted, review-ready issue #1988 and was submitted by a repository maintainer
  • Docs: Fern provider docs, navigation, and the legacy-route redirect are updated for the direct UX changes
  • Checks: current-head Branch Checks, Helm Lint, DCO, docs preview, and published required gate statuses are green
  • E2E: test:e2e is required for provider credentials, policy composition, and sandbox lifecycle; dispatch waits until the blocking review finding is resolved
  • Head SHA: e438dcf8e4978a3b0c7fb33ee0a28a17f3a5dfe5
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 49a93ee08010048b2e11d4c8ef4aa72af600d705
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized full-PR same-SHA replacement)
  • Previous reviewed SHA: none for this scope-authorized rerun
  • Review budget exhausted: no
  • Maintainer decision required: no
  • Next state: gator:in-review

Comment thread crates/openshell-server/src/grpc/provider.rs Outdated
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

Thanks @johntmyers. The maintainer-requested replacement review covered the complete 58-file, five-commit merge-base-to-head patch. It independently confirms the open exact-profile alias obligation and found one additional upgrade regression: removing the provider-composition gate can activate a previously rejected ambiguous policy for an existing sandbox.

Action required: @johntmyers, please address the carried exact-ID-first resolution Warning and the new upgrade-preflight Warning, with the regression coverage requested in each.

Blocking findings:

  • GATOR-e438dcf8-02: unconditional provider composition can activate an invalid persisted sandbox policy after upgrade

Carried findings:

  • GATOR-e438dcf8-01: exact imported profile IDs must resolve before legacy aliases across creation and runtime lookup paths

Non-blocking suggestions:

  • Align the CLI skill/reference and provider table with optional credential sources and the authoritative built-in/imported profile inventory.
Gator metadata
  • Validation: project-valid because it implements accepted, review-ready issue #1988 and was submitted by a repository maintainer
  • Docs: Fern provider docs and navigation are updated; one non-blocking companion-reference consistency suggestion remains
  • Checks: current-head Branch Checks, Helm Lint, DCO, docs preview, and published required gate statuses are green
  • E2E: test:e2e is required for provider credentials, policy composition, and sandbox lifecycle; dispatch waits until blocking review findings are resolved
  • Head SHA: e438dcf8e4978a3b0c7fb33ee0a28a17f3a5dfe5
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 49a93ee08010048b2e11d4c8ef4aa72af600d705
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized full-PR same-SHA replacement)
  • Previous reviewed SHA: none for this scope-authorized rerun
  • Review budget exhausted: yes after this third finding-bearing round; any later autonomous review is Critical-only
  • Maintainer decision required: no; the concrete author fixes above are the current next action
  • Next state: gator:in-review

fn provider_policy_composition_enabled_in(settings: &StoredSettings) -> Result<bool, Status> {
Ok(decode_policy_from_global_settings(settings)?.is_none()
&& bool_setting_enabled(settings, settings::PROVIDERS_V2_ENABLED_KEY)?)
Ok(decode_policy_from_global_settings(settings)?.is_none())

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

Warning — GATOR-e438dcf8-02 · Upgrade can activate a policy the guarded transition rejected

Summary: An operator upgrading with provider composition disabled or unset can have an existing sandbox whose base and attached-profile rules conflict at equal specificity. This change makes composition unconditional without running the former all-sandbox activation validation. On restart or synchronization, the supervisor rejects the ambiguous effective policy, so a previously running sandbox cannot activate policy or start normally.

Fix: Before enabling unconditional composition for persisted deployments, run the existing full-sandbox validator as an upgrade migration or preflight. Keep invalid records dormant until the named conflicts are resolved, and restore an upgrade regression based on the removed activation test.

Verify: Create the conflicting sandbox while the old gate is unset, upgrade, then restart or fetch its configuration. The upgrade must report the sandbox-specific conflict before activation; it must not send an ambiguous policy to the supervisor.

Agent context
  • Location: crates/openshell-server/src/grpc/policy.rs:2042
  • Ownership: This PR removes the controlled activation transition and makes persisted provider composition active by default.

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

Thanks @johntmyers. The maintainer-requested replacement review independently covered the complete 58-file, six-commit merge-base-to-head patch. The exact imported-profile-ID obligation is resolved at this head. The full review still confirms the upgrade-preflight obligation: removing the provider-composition gate can activate a previously dormant ambiguous policy for an existing sandbox.

Action required: @johntmyers, please add an upgrade migration or preflight that reports incompatible persisted sandboxes before provider composition becomes active, and restore deterministic upgrade regression coverage.

Blocking findings:

  • None newly introduced by this full review

Carried findings:

  • GATOR-e438dcf8-02: unconditional provider composition can activate an invalid persisted sandbox policy after upgrade

Non-blocking suggestions:

  • None
Gator metadata
  • Validation: project-valid because it implements accepted, review-ready issue #1988 and was submitted by a repository maintainer
  • Docs: Fern provider docs and navigation cover the direct UX changes
  • Checks: current-head Branch Checks fail in Go SDK; Helm Lint, DCO, docs preview, and published E2E/GPU gate statuses are green
  • E2E: test:e2e is required for provider credentials, policy composition, and sandbox lifecycle; dispatch waits until blocking review feedback is resolved
  • Head SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 7e5b2eef9a0bd663685a2933149fcb0b3196ff60
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized full-PR replacement)
  • Previous reviewed SHA: none for this scope-authorized rerun
  • Review budget exhausted: no
  • Maintainer decision required: no; the concrete author fix above is the current next action
  • Next state: gator:in-review

Comment thread crates/openshell-server/src/grpc/policy.rs

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

The maintainer-requested replacement review independently covered the complete 58-file, six-commit merge-base-to-head patch. It confirms the existing upgrade-preflight obligation and finds one additional provider-update regression: the new authoritative profile credential rules are enforced when a provider is created but can be bypassed by updating that provider.

Action required: @johntmyers, add an upgrade migration or preflight for incompatible persisted sandboxes, and enforce declared/required profile credentials on provider updates while preserving the intended legacy-profileless compatibility path.

Blocking findings:

  • GATOR-dc5184a4-01: provider updates bypass authoritative profile credential validation

Carried findings:

  • GATOR-e438dcf8-02: unconditional composition can activate an invalid persisted sandbox policy after upgrade

Non-blocking suggestions:

  • None
Gator metadata
  • Validation: project-valid because it implements review-ready issue #1988 and was submitted by a repository maintainer
  • Docs: Fern provider docs and navigation cover the direct UX changes
  • Checks: current-head Branch Checks fail in Go SDK; Helm Lint, DCO, docs preview, and published E2E/GPU gate statuses are green
  • E2E: test:e2e is required for provider credentials, policy composition, and sandbox lifecycle; dispatch waits until blocking review feedback is resolved
  • Head SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 7e5b2eef9a0bd663685a2933149fcb0b3196ff60
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized full-PR replacement)
  • Previous reviewed SHA: none for this scope-authorized rerun
  • Review budget exhausted: yes in the prior ledger; the maintainer explicitly authorized this scope-correcting Warning-bearing replacement
  • Maintainer decision required: no; the explicit override authorizes this replacement and the two concrete author obligations are stated above
  • Next state: gator:in-review

.snapshot_catalog(state.store.as_ref(), &workspace)
.await?;
let profile = resolve_provider_create_profile(&catalog, &mut provider)?;
validate_provider_create_credentials(&profile, &provider)?;

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

Warning — GATOR-dc5184a4-01 · Provider updates bypass profile credential rules

Summary: A workspace administrator can create a valid profile-backed provider, then use the supported update API or CLI to delete a required credential or add an undeclared environment key. Creation now rejects both states, but update persists them, so an attached workload can lose its required credential or receive a key its authoritative profile never declared.

Fix: For resolvable profiles, validate incoming keys against the profile and validate the fully staged candidate’s required static credentials, including pending driver-stored values. Preserve compatibility only for profileless legacy records. Add update regressions for undeclared additions and required-key deletion with inline and driver-stored credentials.

Verify: Create an openai provider with OPENAI_API_KEY, then update it once with OPENAI_API_KEY="" and once with UNDECLARED_TOKEN=value; both updates must be rejected, while a legacy profileless record retains its supported update behavior.

Agent context
  • Agent path: UpdateProvider → merged candidate → mutable/attachment validation → persistence
  • Ownership: This PR makes profiles authoritative and adds the credential validation here only to CreateProvider; the supported update boundary remains open.
  • Location: crates/openshell-server/src/grpc/provider.rs:2412
  • Sibling sites: update persistence at crates/openshell-server/src/grpc/provider.rs:468; CLI update at crates/openshell-cli/src/run.rs:4866

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

This maintainer-authorized replacement review independently covered the complete six-commit, 58-file pull request. It validates two existing obligations and identifies three additional blockers from the full upgrade, provider-runtime, and TUI paths; one is a Critical secret-exposure path.

Action required: @johntmyers, please address the five blocking findings and push an updated head; the existing Gator threads for the two carried findings remain the canonical discussion locations.

Blocking findings:

  • GATOR-e438dcf8-02 (carried): upgrading can activate conflicting persisted provider-composed policy without the former compatibility preflight.
  • GATOR-dc5184a4-01 (carried): provider updates can persist credential states that the new authoritative create path rejects.
  • GATOR-dc5184a4-02: new built-in profile IDs can break catalogs containing previously supported imported profiles.
  • GATOR-dc5184a4-03 (Critical): new built-ins can bind undeclared legacy secrets to OpenAI or Anthropic endpoints.
  • GATOR-dc5184a4-04: the authoritative TUI picker silently omits profiles after the first page.

Carried findings:

  • GATOR-e438dcf8-02 and GATOR-dc5184a4-01 remain open and were revalidated against the complete patch.

Non-blocking suggestions:

  • Update .agents/skills/openshell-cli/cli-reference.md to say credential sources are mutually exclusive when supplied, but optional for profiles that permit empty initial credentials.
Gator metadata
  • Validation: Project-valid, maintainer-authored implementation of linked issue #1988 with the complete change stack explicitly authorized for review.
  • Docs: Fern docs and navigation are updated; one agent-facing CLI reference detail remains a non-blocking suggestion.
  • Checks: Current-head OpenShell / Branch Checks is failing in the Go SDK single-flight test; Helm Lint and DCO are green.
  • E2E: Required for provider credential flow; current-head E2E status exists, but test dispatch is not advanced while blocking review findings remain.
  • Head SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 7e5b2eef9a0bd663685a2933149fcb0b3196ff60
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized full-PR replacement review)
  • Previous reviewed SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57 (prior scope invalidated for this rerun)
  • Review budget exhausted: yes in the historical ledger; this full replacement review was explicitly authorized.
  • Maintainer decision required: no — the current concrete action is author remediation of the validated blocker set.
  • Next state: gator:in-review

include_str!("../../../providers/google-cloud.yaml"),
include_str!("../../../providers/google-vertex-ai.yaml"),
include_str!("../../../providers/nvidia.yaml"),
include_str!("../../../providers/openai.yaml"),

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

Warning — GATOR-dc5184a4-02 · New built-in IDs break existing imported profiles

Summary: An administrator who previously imported an openai or anthropic profile can upgrade successfully, but any operation that builds the default profile catalog then fails on the duplicate static and user-managed ID. Provider management and sandbox policy or credential synchronization remain unavailable until the persisted profile is renamed or deleted.

Fix: Treat the new built-ins as fallbacks when a user-managed profile already owns the ID, or migrate before activation while preserving the custom profile and reporting the operator action. Cover both IDs with upgrade tests.

Verify: Import openai on the base version, upgrade with default profile sources, then list profiles and fetch sandbox configuration; both must continue using the imported profile without a duplicate-ID failure. Repeat for anthropic.

Agent context
  • Location: crates/openshell-providers/src/profiles.rs:42
  • Ownership: This PR reserves two previously importable IDs while catalog assembly still rejects static-versus-user duplicates.

include_str!("../../../providers/google-cloud.yaml"),
include_str!("../../../providers/google-vertex-ai.yaml"),
include_str!("../../../providers/nvidia.yaml"),
include_str!("../../../providers/openai.yaml"),

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

Critical — GATOR-dc5184a4-03 · Undeclared legacy secrets become bound to public endpoints

Summary: After upgrade, a sandbox using a legacy openai or anthropic provider can receive any valid stored environment-key credential as an endpoint-bound placeholder, even when the new profile never declared that key. A sandboxed agent can place an unrelated secret such as AWS_SECRET_ACCESS_KEY in a request to OpenAI or Anthropic and cause proxy substitution, disclosing the secret externally.

Fix: Before adopting a profile for an existing record, validate stored and driver-backed keys against accepted_stored_keys; never emit or bind undeclared keys. Report incompatible records through upgrade preflight or migration and add both provider regressions.

Verify: Persist a legacy openai provider containing only AWS_SECRET_ACCESS_KEY, attach it, upgrade, and synchronize with static bindings enabled. The key and binding must be withheld and unusable in a request to api.openai.com; repeat for anthropic.

Agent context
  • Agent path: built-in profile resolution → every stored valid environment key → static binding → proxy substitution
  • Location: crates/openshell-providers/src/profiles.rs:42
  • Ownership: This PR adds matching built-ins and enables their behavior unconditionally while preserving legacy records.

let mut profiles = HashMap::new();
app.provider_profiles.clear();
for ws in &workspaces {
let req = openshell_core::proto::ListProviderProfilesRequest {

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

Warning — GATOR-dc5184a4-04 · The authoritative TUI picker truncates profile catalogs

Summary: In a workspace with more than 100 visible built-in, imported, or interceptor profiles, an operator opening provider creation sees only the first response page. The TUI never requests the next offset, so valid later profiles are absent from the advertised creation workflow and can also lack metadata in the provider table.

Fix: Fetch pages until the server returns a short page, merge them before updating the profile cache and picker, and cover a selectable profile returned on page two.

Verify: Mock ListProviderProfiles with 100 results at offset 0 and one result at offset 100, refresh the TUI, and open provider creation. The TUI must make the second request and expose the final profile.

Agent context
  • Location: crates/openshell-tui/src/lib.rs:2127
  • Ownership: This PR makes the remote catalog authoritative for TUI creation while retaining a single fixed-size request.

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

At the maintainer's request, this replacement initial review independently covered the complete six-commit, 58-file merge-base-to-head patch—not only the latest TUI commit. The full review validates the five existing open obligations and found no additional blockers; the existing Gator threads remain the canonical discussion locations.

Action required: @johntmyers, please address the five carried findings and push an updated head.

Blocking findings:

  • No new blocking findings from this full replacement review

Carried findings:

  • GATOR-e438dcf8-02: upgrading can activate conflicting persisted provider-composed policy without the former compatibility preflight
  • GATOR-dc5184a4-01: provider updates can bypass authoritative profile credential rules
  • GATOR-dc5184a4-02: new built-in profile IDs can invalidate existing imported profiles
  • GATOR-dc5184a4-03 (Critical): new built-ins can bind undeclared legacy secrets to public OpenAI or Anthropic endpoints
  • GATOR-dc5184a4-04: the authoritative TUI picker omits profiles after the first page

Non-blocking suggestions:

  • None
Gator metadata
  • Validation: Project-valid, maintainer-authored implementation of linked issue #1988
  • Docs: Fern docs and navigation cover the direct UX changes
  • Checks: Current-head OpenShell / Branch Checks fails in Go SDK; OpenShell / Helm Lint, DCO, and docs preview are green
  • E2E: test:e2e is required for provider credential, policy-composition, and sandbox-lifecycle changes; dispatch waits until blocking review feedback is resolved
  • Head SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 7e5b2eef9a0bd663685a2933149fcb0b3196ff60
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized full-PR same-SHA replacement)
  • Previous reviewed SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57 (prior scope invalidated for this rerun)
  • Review budget exhausted: yes in the historical ledger; this scope-correcting full review was explicitly authorized
  • Maintainer decision required: no — concrete author remediation is the next action
  • Next state: gator:in-review

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

At the maintainer's request, this replacement initial review independently covered the complete six-commit, 58-file merge-base-to-head patch rather than only the latest TUI commit. The full review validates the five existing open obligations and found no additional blockers; the existing Gator threads remain the canonical discussion locations.

Action required: @johntmyers, please address the five carried findings and push an updated head.

Blocking findings:

  • No new blocking findings from this full replacement review

Carried findings:

  • GATOR-e438dcf8-02: upgrading can activate conflicting persisted provider-composed policy without the former compatibility preflight
  • GATOR-dc5184a4-01: provider updates can bypass authoritative profile credential rules, including persisted profile scope during CLI discovery
  • GATOR-dc5184a4-02: new built-in profile IDs can invalidate existing imported profiles
  • GATOR-dc5184a4-03 (Critical): new built-ins can bind undeclared legacy secrets to public OpenAI or Anthropic endpoints
  • GATOR-dc5184a4-04: the authoritative TUI picker omits profiles after the first page

Non-blocking suggestions:

  • None
Gator metadata
  • Validation: Project-valid, maintainer-authored implementation of linked issue #1988
  • Docs: Fern docs and navigation cover the direct UX changes
  • Checks: Current-head OpenShell / Branch Checks fails in Go SDK; OpenShell / Helm Lint, DCO, docs preview, and published E2E/GPU gate statuses are green
  • E2E: test:e2e is required for provider credential, policy-composition, and sandbox-lifecycle changes; dispatch waits until blocking review feedback is resolved
  • Head SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 7e5b2eef9a0bd663685a2933149fcb0b3196ff60
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized full-PR same-SHA replacement)
  • Previous reviewed SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57 (prior scope invalidated for this rerun)
  • Review budget exhausted: yes in the historical ledger; this scope-correcting full review was explicitly authorized
  • Maintainer decision required: no — concrete author remediation is the next action
  • Next state: gator:in-review

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

At the maintainer's request, this replacement initial review independently covered the complete six-commit, 58-file merge-base-to-head patch rather than only the latest TUI commit. The full review validates the five existing open obligations and found no additional blockers; the existing Gator threads remain the canonical discussion locations.

Action required: @johntmyers, please address the five carried findings and push an updated head.

Blocking findings:

  • No new blocking findings from this full replacement review

Carried findings:

  • GATOR-e438dcf8-02: upgrading can activate conflicting persisted provider-composed policy without the former compatibility preflight
  • GATOR-dc5184a4-01: provider updates can bypass authoritative profile credential rules, including persisted profile scope during CLI discovery
  • GATOR-dc5184a4-02: new built-in profile IDs can invalidate existing imported profiles
  • GATOR-dc5184a4-03 (Critical): new built-ins can bind undeclared legacy secrets to public OpenAI or Anthropic endpoints
  • GATOR-dc5184a4-04: the authoritative TUI picker omits profiles after the first page

Non-blocking suggestions:

  • None
Gator metadata
  • Validation: Project-valid, maintainer-authored implementation of linked issue #1988
  • Docs: Fern docs and navigation cover the direct UX changes
  • Checks: Current-head OpenShell / Branch Checks fails in the Go SDK job; OpenShell / Helm Lint and the published E2E/GPU gate statuses are green
  • E2E: test:e2e is required for provider credential, policy-composition, and sandbox-lifecycle changes; Gator does not advance test dispatch while blocking review feedback remains
  • Head SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 7e5b2eef9a0bd663685a2933149fcb0b3196ff60
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized full-PR same-SHA replacement)
  • Previous reviewed SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57 (prior scope invalidated for this rerun)
  • Review budget exhausted: yes in the historical ledger; this scope-correcting full review was explicitly authorized
  • Maintainer decision required: no — concrete author remediation is the next action
  • Next state: gator:in-review

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

At the maintainer's request, this replacement initial review independently covered the complete six-commit, 58-file merge-base-to-head patch rather than only the latest TUI commit. The full review validates the five existing open obligations and found no additional blockers; the existing Gator threads remain the canonical discussion locations.

Action required: @johntmyers, please address the five carried findings and push an updated head.

Blocking findings:

  • No new blocking findings from this full replacement review

Carried findings:

  • GATOR-e438dcf8-02: upgrading can activate a conflicting persisted provider-composed policy without the former compatibility preflight
  • GATOR-dc5184a4-01: provider updates can bypass authoritative profile credential rules, including persisted profile scope during CLI discovery
  • GATOR-dc5184a4-02: new built-in profile IDs can invalidate existing imported profiles
  • GATOR-dc5184a4-03 (Critical): new built-ins can bind undeclared legacy secrets to public OpenAI or Anthropic endpoints
  • GATOR-dc5184a4-04: the authoritative TUI picker omits profiles after the first page

Non-blocking suggestions:

  • None
Gator metadata
  • Validation: Project-valid, maintainer-authored implementation of linked issue #1988
  • Docs: Fern docs and navigation cover the direct UX changes
  • Checks: Current-head OpenShell / Branch Checks fails in the Go SDK job; OpenShell / Helm Lint, DCO, docs preview, and published E2E/GPU gate statuses are green
  • E2E: test:e2e is required for provider credential, policy-composition, and sandbox-lifecycle changes; dispatch waits until blocking review feedback is resolved
  • Head SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 7e5b2eef9a0bd663685a2933149fcb0b3196ff60
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized full-PR same-SHA replacement)
  • Previous reviewed SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57 (prior scope invalidated for this rerun)
  • Review budget exhausted: yes in the historical ledger; this scope-correcting full review was explicitly authorized
  • Maintainer decision required: no — concrete author remediation is the next action
  • Next state: gator:in-review

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

John requested a fresh review of the complete six-commit stack because the prior same-head disposition appeared too narrowly focused. I independently reviewed the full 58-file merge-base-to-head diff. That complete pass validates all five existing Gator obligations and adds two blockers that were not captured by the earlier narrow review.

Action required: address the seven blocking findings, including the two new inline findings below, then push an updated head for follow-up review.

Blocking findings:

  • GATOR-dc5184a4-05: configurable OpenAI/Anthropic credentials can be bound to the wrong public vendor endpoint.
  • GATOR-dc5184a4-06: the canonical provider inventory still advertises types that authoritative creation rejects.

Carried findings:

  • GATOR-e438dcf8-02: upgrade activates provider policy without the former compatibility preflight.
  • GATOR-dc5184a4-01: provider updates bypass authoritative credential validation.
  • GATOR-dc5184a4-02: new built-in IDs collide with persisted imported profiles.
  • GATOR-dc5184a4-03: profile adoption can bind undeclared legacy secrets to public endpoints.
  • GATOR-dc5184a4-04: the authoritative TUI profile picker does not paginate.

Non-blocking suggestions:

  • None.
Gator metadata
  • Validation: project-valid implementation of accepted issue #1988, with an explicit maintainer-requested complete-stack review
  • Docs: updated, but the supported-provider inventory remains materially contradictory (GATOR-dc5184a4-06)
  • Checks: current-head branch checks include a Go SDK failure; pipeline handoff is deferred while review blockers remain
  • E2E: required for provider credential, policy, gateway/supervisor, and sandbox behavior; dispatch deferred until blocking review feedback is resolved
  • Head SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 7e5b2eef9a0bd663685a2933149fcb0b3196ff60
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized full-PR scope override)
  • Previous reviewed SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57 (prior scope invalidated for this rerun)
  • Review budget exhausted: no for this explicitly authorized full initial rerun
  • Maintainer decision required: no
  • Next state: gator:in-review

Comment thread providers/openai.yaml
discovery:
credentials: [api_key]
endpoints:
- host: api.openai.com

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

Critical — GATOR-dc5184a4-05 · Configurable inference secrets can be sent to the wrong vendor

Summary: An administrator can follow the supported OpenAI-compatible flow, store a third-party or private-service key with OPENAI_BASE_URL, and attach it to a sandbox. The new profile ignores that configured upstream and also grants curl access plus credential substitution at api.openai.com; a sandboxed agent can therefore send the third-party key to OpenAI. The Anthropic path has the same defect.

Fix: When an alternate base URL is configured, do not emit fixed-vendor policy or bind its key to that vendor. Keep the provider route-only or require an endpoint-matching custom profile, and cover both provider types.

Verify: Configure api.example.com with a distinct key, attach it, and request the public vendor with the placeholder. The public-vendor request must be denied or must not substitute the key.

Agent context
  • Location: providers/openai.yaml:19
  • Sibling site: providers/anthropic.yaml:19
  • Ownership: This PR adds the fixed public profiles while preserving alternate-base-URL semantics and enabling profile composition unconditionally.

have a built-in or imported provider profile with a `discovery` section. If no
matching profile exists, the CLI returns an error instead of falling back to
legacy discovery.
Provider creation rejects profileless types. For a custom GitLab deployment,

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

Warning — GATOR-dc5184a4-06 · The provider reference advertises types creation rejects

Summary: An operator following this canonical page is told here that profileless creation is rejected, but the Supported Provider Types table later on the same page still advertises generic, gitlab, and opencode as creatable types. This PR removes their authoritative profiles and public normalization paths, so the documented create commands deterministically fail.

Fix: Remove those types from the creatable inventory, or label them existing-record-only and direct new deployments to import an endpoint-bearing custom profile.

Verify: Follow each retained table entry on this head. Every type advertised as creatable must resolve to a built-in or imported profile and succeed past exact profile lookup; legacy-only entries must not claim new-create support.

Agent context
  • Location: docs/sandboxes/manage-providers.mdx:106
  • Contradictory entries: lines 410, 412, and 415
  • Ownership: This PR retires these public types and edits this page for authoritative profiles without reconciling its inventory.

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

John requested a fresh initial review of the complete pull request because the prior same-head disposition appeared to focus too narrowly on the latest TUI commit. I rebuilt the review from the full six-commit, 58-file merge-base-to-head patch and independently re-evaluated every changed file. That complete pass revalidates the seven existing obligations and finds no additional blockers; the existing Gator threads remain the canonical discussion locations.

Action required: @johntmyers, please address the seven carried findings and push an updated head for follow-up review.

Blocking findings:

  • No new blocking findings from this complete replacement review.

Carried findings:

  • GATOR-e438dcf8-02: upgrading can activate conflicting persisted provider-composed policy without the former compatibility preflight.
  • GATOR-dc5184a4-01: provider updates bypass authoritative credential validation, including persisted profile scope during CLI discovery.
  • GATOR-dc5184a4-02: new built-in profile IDs can make existing imported profiles prevent authoritative catalog construction.
  • GATOR-dc5184a4-03 (Critical): profile adoption can bind undeclared legacy secrets to public OpenAI or Anthropic endpoints.
  • GATOR-dc5184a4-04: the authoritative TUI profile picker does not paginate beyond 100 profiles.
  • GATOR-dc5184a4-05 (Critical): alternate-upstream OpenAI or Anthropic credentials can be substituted at the wrong public vendor endpoint.
  • GATOR-dc5184a4-06: the canonical provider inventory still advertises types that authoritative creation rejects.

Non-blocking suggestions:

  • None.
Gator metadata
  • Validation: project-valid, maintainer-authored implementation of review-ready issue #1988, with an explicit maintainer-requested complete-stack review.
  • Docs: Fern docs and navigation are updated, but the canonical supported-provider inventory remains materially contradictory (GATOR-dc5184a4-06).
  • Checks: current-head OpenShell / Branch Checks is failing in the Go SDK job; OpenShell / Helm Lint, DCO, and docs preview are green.
  • E2E: test:e2e is required for provider credential, policy-composition, gateway/supervisor, and sandbox-lifecycle behavior; dispatch remains deferred while blocking review feedback is unresolved.
  • Head SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 7e5b2eef9a0bd663685a2933149fcb0b3196ff60
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized full-PR same-SHA scope override)
  • Previous reviewed SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57 (prior scope invalidated for this rerun)
  • Review budget exhausted: yes in the historical ledger; this scope-correcting full initial review was explicitly authorized.
  • Maintainer decision required: no — the concrete next action is author remediation of the independently validated blocker set.
  • Next state: gator:in-review

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

Thanks John. At your request, this replacement initial review independently covered the complete six-commit, 58-file merge-base-to-head patch rather than only the latest TUI commit. The complete pass revalidates the seven existing obligations and finds no additional blockers; the existing Gator threads remain the canonical discussion locations.

Action required: @johntmyers, please address the seven carried findings and push an updated head for follow-up review.

Blocking findings:

  • No new blocking findings from this complete replacement review.

Carried findings:

  • GATOR-e438dcf8-02: upgrading can activate conflicting persisted provider-composed policy without the former compatibility preflight.
  • GATOR-dc5184a4-01: provider updates bypass authoritative profile credential validation.
  • GATOR-dc5184a4-02: new built-in IDs can make an existing imported profile prevent catalog construction.
  • GATOR-dc5184a4-03 (Critical): profile adoption can bind undeclared legacy secrets to public OpenAI or Anthropic endpoints.
  • GATOR-dc5184a4-04: the authoritative TUI profile picker omits profiles after the first page.
  • GATOR-dc5184a4-05 (Critical): alternate-upstream credentials can be substituted at the wrong public vendor endpoint.
  • GATOR-dc5184a4-06: the canonical provider inventory advertises types authoritative creation rejects.

Non-blocking suggestions:

  • None.
Gator metadata
  • Validation: project-valid, maintainer-authored implementation of review-ready issue #1988, with an explicit maintainer-requested complete-stack review.
  • Docs: Fern docs and navigation are updated, but the canonical supported-provider inventory remains materially contradictory (GATOR-dc5184a4-06).
  • Checks: current-head OpenShell / Branch Checks fails in the Go SDK job; OpenShell / Helm Lint, DCO, and docs preview are green.
  • E2E: test:e2e is required for provider credential, policy-composition, gateway/supervisor, and sandbox-lifecycle behavior; dispatch remains deferred while blocking review feedback is unresolved.
  • Head SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 7e5b2eef9a0bd663685a2933149fcb0b3196ff60
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized full-PR same-SHA scope override)
  • Previous reviewed SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57 (prior scope invalidated for this rerun)
  • Review budget exhausted: yes in the historical ledger; this scope-correcting full initial review was explicitly authorized.
  • Maintainer decision required: no — concrete author remediation is the next action.
  • Next state: gator:in-review

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

Thanks John. At your request, this replacement initial review independently covered the complete six-commit, 58-file merge-base-to-head patch rather than only the latest TUI commit. The full pass revalidates the seven existing open obligations—two Critical and five Warning—and finds no additional blockers. The existing Gator threads remain the canonical discussion locations.

Action required: @johntmyers, because the autonomous Warning budget is exhausted, please make the convergence decision for these concrete obligations: push fixes for the findings that should be remediated and explicitly waive any that are acceptable as implemented. Gator can then verify the resulting author delta and dispositions.

Blocking findings:

  • No new blocking findings

Carried findings:

  • GATOR-e438dcf8-02: validate persisted sandbox policies before unconditional provider composition activates previously dormant conflicts
  • GATOR-dc5184a4-01: enforce authoritative profile credential rules on supported provider updates as well as creation
  • GATOR-dc5184a4-02: preserve previously valid imported profiles when new built-ins claim the same IDs
  • GATOR-dc5184a4-03: prevent undeclared legacy credentials from becoming endpoint-bound secrets after profile adoption
  • GATOR-dc5184a4-04: paginate the authoritative TUI profile catalog beyond the first 100 entries
  • GATOR-dc5184a4-05: prevent alternate-upstream inference credentials from being substituted at fixed public-vendor endpoints
  • GATOR-dc5184a4-06: reconcile the canonical provider reference with types that profile-backed creation now rejects
Gator metadata
  • Validation: linked roadmap issue #1988 explicitly defines the cross-subsystem Providers v2 migration and the author is a verified repository administrator
  • Docs: updated, with one validated contradictory provider-type inventory obligation still open
  • Checks: current-head Branch Checks are failing; pipeline handoff is deferred until review obligations converge
  • E2E: test:e2e is required for provider credential and policy behavior, but dispatch is deferred until blocking review feedback is resolved or waived
  • Head SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 7e5b2eef9a0bd663685a2933149fcb0b3196ff60
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized complete-patch replacement)
  • Previous reviewed SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57 (scope-invalid for this requested rerun)
  • Review budget exhausted: yes
  • Maintainer decision required: yes — seven independently validated obligations remain unresolved and unwaived
  • Next state: gator:blocked
  • Blocked reason: review_convergence_decision_required

@johntmyers johntmyers added gator:blocked Gator is blocked by process or repository gates and removed gator:in-review Gator is reviewing or awaiting PR review feedback labels Aug 27, 2026

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

Thanks John. I completed the maintainer-requested replacement review against the complete merge-base-to-head patch: all six commits and all 58 changed files, not only the latest TUI commit. This independent pass validates the seven existing open obligations—two Critical and five Warning—and finds no additional blockers. The existing Gator threads remain the canonical discussion locations.

Action required: @johntmyers, please push fixes for the obligations that should be remediated and explicitly waive any that are acceptable as implemented; Gator can then verify the resulting author delta and dispositions.

Blocking findings:

  • No new blocking findings from the complete replacement review

Carried findings:

  • GATOR-e438dcf8-02: validate persisted sandbox policies before unconditional provider composition activates previously dormant conflicts
  • GATOR-dc5184a4-01: enforce authoritative profile credential rules on supported provider updates as well as creation
  • GATOR-dc5184a4-02: preserve previously valid imported profiles when new built-ins claim the same IDs
  • GATOR-dc5184a4-03 (Critical): prevent undeclared legacy credentials from becoming endpoint-bound secrets after profile adoption
  • GATOR-dc5184a4-04: paginate the authoritative TUI profile catalog beyond the first 100 entries
  • GATOR-dc5184a4-05 (Critical): prevent alternate-upstream credentials from being substituted at fixed public-vendor endpoints
  • GATOR-dc5184a4-06: reconcile the canonical provider reference with types that profile-backed creation now rejects

Non-blocking suggestions:

  • None
Gator metadata
  • Validation: linked review-ready issue #1988 defines this cross-subsystem Providers v2 migration, and the author is a verified repository administrator
  • Docs: updated, with one independently validated contradictory provider-type inventory obligation still open
  • Checks: current-head OpenShell / Branch Checks fails in the Go SDK job; DCO and OpenShell / Helm Lint are green
  • E2E: test:e2e is required for provider credential, policy-composition, gateway/supervisor, and sandbox-lifecycle behavior; dispatch is deferred until blocking review feedback is resolved or waived
  • Head SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 7e5b2eef9a0bd663685a2933149fcb0b3196ff60
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized complete-patch same-SHA replacement)
  • Previous reviewed SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57 (prior scope treated as invalid for this requested rerun)
  • Review budget exhausted: yes in the historical ledger; this scope-correcting full initial review was explicitly authorized
  • Maintainer decision required: yes — seven independently validated obligations remain unresolved and unwaived
  • Next state: gator:blocked
  • Blocked reason: review_convergence_decision_required

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

Thanks John. At your request, this replacement initial review rebuilt context from the complete six-commit, 58-file merge-base-to-head patch instead of focusing on the latest TUI commit. The independent full-PR pass revalidates the seven existing open obligations—two Critical and five Warning—and finds no additional blockers. The existing Gator threads remain the canonical discussion locations; the complete review did not reopen the resolved TUI, broker-credential, or exact-ID findings.

Action required: @johntmyers, please push fixes for the obligations that should be remediated and explicitly waive any that are acceptable as implemented; Gator can then verify the resulting author delta and trusted dispositions.

Blocking findings:

  • No new blocking findings from the complete replacement review

Carried findings:

  • GATOR-e438dcf8-02: validate persisted sandbox policies before unconditional provider composition activates previously dormant conflicts
  • GATOR-dc5184a4-01: enforce authoritative profile credential rules on supported provider updates as well as creation
  • GATOR-dc5184a4-02: preserve previously valid imported profiles when new built-ins claim the same IDs
  • GATOR-dc5184a4-03 (Critical): prevent undeclared legacy credentials from becoming endpoint-bound secrets after profile adoption
  • GATOR-dc5184a4-04: paginate the authoritative TUI profile catalog beyond the first 100 entries
  • GATOR-dc5184a4-05 (Critical): prevent alternate-upstream inference credentials from being substituted at fixed public-vendor endpoints
  • GATOR-dc5184a4-06: reconcile the canonical provider reference with types that profile-backed creation now rejects

Non-blocking suggestions:

  • None
Gator metadata
  • Validation: linked review-ready issue #1988 defines this cross-subsystem Providers v2 migration, and the author is a verified repository administrator
  • Docs: updated, with one independently validated contradictory provider-type inventory obligation still open
  • Checks: current-head OpenShell / Branch Checks fails in the Go SDK job; DCO and OpenShell / Helm Lint are green
  • E2E: test:e2e is required for provider credential, policy-composition, gateway/supervisor, and sandbox-lifecycle behavior; dispatch is deferred until blocking review feedback is resolved or waived
  • Head SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 7e5b2eef9a0bd663685a2933149fcb0b3196ff60
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized complete-patch same-SHA replacement)
  • Previous reviewed SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57 (prior scope treated as invalid for this requested rerun)
  • Review budget exhausted: yes in the historical ledger; this scope-correcting full initial review was explicitly authorized
  • Maintainer decision required: yes — seven independently validated obligations remain unresolved and unwaived
  • Next state: gator:blocked
  • Blocked reason: review_convergence_decision_required

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

Thanks John. At your request, I rebuilt this replacement initial review from the complete merge-base-to-head patch—all six commits and all 58 changed files—rather than focusing on the latest TUI commit, prior findings, or an author-only delta. The independent full pass revalidates seven existing obligations (two Critical and five Warning) and finds no additional blockers. The existing Gator threads remain the canonical discussion locations.

Action required: @johntmyers, please push fixes for the obligations that should be remediated and explicitly waive any that are acceptable as implemented; Gator can then verify the resulting author delta and trusted dispositions.

Blocking findings:

  • No new blocking findings from the complete replacement review

Carried findings validated by the complete review:

  • GATOR-dc5184a4-03 (Critical): prevent undeclared legacy credentials from becoming endpoint-bound secrets after automatic profile adoption
  • GATOR-dc5184a4-05 (Critical): prevent alternate-upstream credentials from being substituted at fixed public-vendor endpoints
  • GATOR-e438dcf8-02: validate persisted sandbox policies before unconditional provider composition activates previously dormant conflicts
  • GATOR-dc5184a4-01: enforce authoritative profile credential rules on supported provider updates as well as creation
  • GATOR-dc5184a4-02: preserve previously valid imported profiles when new built-ins claim the same IDs
  • GATOR-dc5184a4-04: paginate the authoritative TUI profile catalog beyond the first 100 entries
  • GATOR-dc5184a4-06: reconcile canonical provider references with retired profileless types and optional credential sources

Non-blocking suggestions:

  • None
Gator metadata
  • Validation: linked review-ready issue #1988 defines this cross-subsystem Providers v2 migration, and the author is a verified repository administrator
  • Docs: Fern docs and navigation are updated, with one validated contradictory provider inventory and CLI-reference obligation still open
  • Checks: current-head OpenShell / Branch Checks fails in the Go SDK job; DCO, OpenShell / Helm Lint, docs preview, and published E2E/GPU gate statuses are green
  • E2E: test:e2e is required for provider credential, policy-composition, gateway/supervisor, and sandbox-lifecycle behavior; dispatch remains deferred while blocking review feedback is unresolved or unwaived
  • Head SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 7e5b2eef9a0bd663685a2933149fcb0b3196ff60
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized complete-patch same-SHA replacement)
  • Previous reviewed SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57 (prior scope treated as invalid for this requested rerun)
  • Review budget exhausted: yes in the historical ledger; this scope-correcting full initial review was explicitly authorized
  • Maintainer decision required: yes — seven independently validated obligations remain unresolved and unwaived
  • Next state: gator:blocked
  • Blocked reason: review_convergence_decision_required

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

Thanks John. At the maintainer's request, this replacement initial review rebuilt context from the complete merge-base-to-head patch—all six commits and all 58 changed files—rather than the latest TUI commit, a latest-commit delta, or prior findings alone. The independent full pass validates the seven existing open obligations (two Critical and five Warning) and finds no additional blockers. The existing Gator threads remain the canonical discussion locations; resolved findings were not reopened.

Action required: @johntmyers, please push fixes for the obligations that should be remediated and explicitly waive any that are acceptable as implemented; Gator can then verify the resulting author delta and trusted dispositions.

Blocking findings:

  • No new blocking findings from the complete replacement review

Carried findings validated by the complete review:

  • GATOR-dc5184a4-03 (Critical): prevent undeclared legacy credentials from becoming endpoint-bound secrets after automatic profile adoption
  • GATOR-dc5184a4-05 (Critical): prevent alternate-upstream credentials from being substituted at fixed public-vendor endpoints
  • GATOR-e438dcf8-02: validate persisted sandbox policies before unconditional provider composition activates previously dormant conflicts
  • GATOR-dc5184a4-01: enforce authoritative profile credential rules on supported provider updates as well as creation
  • GATOR-dc5184a4-02: preserve previously valid imported profiles when new built-ins claim the same IDs
  • GATOR-dc5184a4-04: paginate the authoritative TUI profile catalog beyond the first 100 entries
  • GATOR-dc5184a4-06: reconcile canonical provider references with retired profileless types and optional credential sources

Non-blocking suggestions:

  • None
Gator metadata
  • Validation: linked review-ready issue #1988 defines this cross-subsystem Providers v2 migration, and the author is a verified repository administrator
  • Docs: Fern docs and navigation are updated, with one validated contradictory provider inventory and CLI-reference obligation still open
  • Checks: current-head OpenShell / Branch Checks fails in the Go SDK job; DCO and OpenShell / Helm Lint are green
  • E2E: test:e2e is required for provider credential, policy-composition, gateway/supervisor, and sandbox-lifecycle behavior; dispatch remains deferred while blocking review feedback is unresolved or unwaived
  • Head SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57
  • Base SHA: 572843baf8a68263dda80a46441d1697e201ba74
  • Merge base SHA: c3993426498d5b602ec080bc1d3cbad5e8460f4a
  • Patch ID: 7e5b2eef9a0bd663685a2933149fcb0b3196ff60
  • Gator payload: 7
  • Review mode: initial (maintainer-authorized complete-patch same-SHA replacement)
  • Previous reviewed SHA: dc5184a4574fb76115e8c32982a0c02a1ddd8b57 (prior scope treated as invalid for this requested rerun)
  • Review budget exhausted: yes in the historical ledger; this scope-correcting full initial review was explicitly authorized
  • Maintainer decision required: yes — seven independently validated obligations remain unresolved and unwaived
  • Next state: gator:blocked
  • Blocked reason: review_convergence_decision_required

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gator:blocked Gator is blocked by process or repository gates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(providers): make Providers v2 the only provider system

1 participant